
#define MAXIMUM_SIZE_OF_PATTERN 10
	enum HeiristicType {MAXING_HEURISTIC,SPLIT_VALUES_HEURISTIC,LOCATION_BASED_HEURISTIC};
#define TopSpinbogus
#define INFINITY 1000000
//========================================
// PDB definition (copied from defPDB.h)
//========================================
#define SPIN_SIZE 4                                                      /* number of tokens in the reverse cycle */
#define SIZE  16                                                         /* total number of tokens */
#define HEURISTIC_TYPE  MAXING_HEURISTIC     // do we need it?
#define FILE1 "../dumps/SIZE16P8/Size16Spin4Pattern_0_1_2_3_4_5_6_7"     /* PDB file path and name */
#define ProblemsFile "../Dumps/Problems/problems_TopSpin_16_Max150.txt"  /* initial states file path and name */
#define h1_size 15*14*13*12*11*10*9                                      /* size of PDB table */

#define NUMBER_OF_HEURISTICS 2//do we need it?
#define MAXIMUM_SIZE_OF_PATTERN 10
static int h_PTiles[NUMBER_OF_HEURISTICS][MAXIMUM_SIZE_OF_PATTERN] =
{0,1,2, 3, 4, 5, 6,7,-1,-1,
 8,9,10,11,12,13,14,15,-1,-1};// do we need it?
#define PATTERNSIZE_1 8                                                /* number of the left most relevant tokens for PDB build */
#define SHRINKDATABASE 0
#define DEBUG_PRINTS false

//=================PDB=4==================================
#ifdef TopSpin16_P4
#define SPIN_SIZE 4
#define SIZE  16
#define HEURISTIC_TYPE  MAXING_HEURISTIC
#define FILE1 "../dumps/SIZE16P4/Size16Spin4Pattern_0_1_2_3"
#define ProblemsFile "../Dumps/Problems/problems_TopSpin_16_Max150.txt"
#define h1_size 15*14*13

#define NUMBER_OF_HEURISTICS 4
static int h_PTiles[NUMBER_OF_HEURISTICS][MAXIMUM_SIZE_OF_PATTERN] =
{0,1,2, 3, -1, -1,-1,-1,-1,-1,
 4,5,6, 7, -1, -1,-1,-1,-1,-1,
 8,9,10, 11, -1, -1,-1,-1,-1,-1,
 12,13,14, 15, -1, -1,-1,-1,-1,-1};
#define PATTERNSIZE_1 4
#define SHRINKDATABASE 0
#endif

#ifdef TopSpin18_P6_6_6
	#define SPIN_SIZE 4
	#define SIZE  18
	#define HEURISTIC_TYPE  MAXING_HEURISTIC
	#define FILE1 "../dumps/SIZE18P6/Size18Spin4Pattern_0_1_2_3_4_5"
//	#define ProblemsFile "../Dumps/Problems/problems_TopSpin_18_Max15.txt"
	#define ProblemsFile "../Dumps/Problems/problems_TopSpin_18_Max150.txt"
	#define h1_size 17*16*15*14*13

	#define NUMBER_OF_HEURISTICS 3
	static int h_PTiles[NUMBER_OF_HEURISTICS][MAXIMUM_SIZE_OF_PATTERN] =
		{0,1,2, 3, 4, 5, -1,-1,-1,-1,
		 6,7,8,9,10,11,-1,-1,-1,-1,
		 12,13,14,15,16,17,-1,-1,-1,-1};
	#define PATTERNSIZE_1 6
	#define SHRINKDATABASE 0
#endif

#ifdef TopSpin17_P8
	#define SPIN_SIZE 4
	#define SIZE  17
	#define HEURISTIC_TYPE  MAXING_HEURISTIC
	#define FILE1 "../dumps/SIZE17P8/Size17Spin4Pattern_0_1_2_3_4_5_6_7"
//	#define ProblemsFile "../Dumps/Problems/problems_TopSpin_18_Max15.txt"
	#define ProblemsFile "../Dumps/Problems/problems_TopSpin_17_Max150.txt"
	#define h1_size 17*16*15*14*13

	#define NUMBER_OF_HEURISTICS 3
	static int h_PTiles[NUMBER_OF_HEURISTICS][MAXIMUM_SIZE_OF_PATTERN] =
		{0,1,2, 3, 4, 5, -1,-1,-1,-1,
		 6,7,8,9,10,11,-1,-1,-1,-1,
		 12,13,14,15,16,17,-1,-1,-1,-1};
	#define PATTERNSIZE_1 6
	#define SHRINKDATABASE 0
#endif

//========================================
// 

//========================================
//       General 
//========================================
#define UCHAR unsigned char
typedef unsigned long int I64;
#define MAX(x,y) (((x)>(y))?(x):(y))
#define MIN(x,y) (((x)<(y))?(x):(y))


